package cn.lyjuan.payment.third.base.pay.chl.impl;


import cn.lyjuan.payment.third.base.pay.chl.IPayChl;
import cn.lyjuan.payment.third.base.pay.enums.SimpleStatusEnum;
import cn.lyjuan.payment.third.base.pay.vo.req.*;
import cn.lyjuan.payment.third.base.pay.vo.res.QueryRes;

public abstract class AbstractPayChl
        <
                CnfReqT extends ChlCnf
                , PayReqT extends PayReq.IPayReq
                , NotifyReqT extends NotifyReq.INotifyReq
                , QueryReqT extends QueryReq.IQueryReq
                , TransferReqT extends TransferReq.ITransferReq
                , PayResT
                >
        implements IPayChl
        <
                CnfReqT
                , PayReqT
                , NotifyReqT
                , QueryReqT
                , TransferReqT
                , PayResT
                > {

    /**
     * 直接返回未知状态
     *
     * @param req 查询信息
     * @return
     */
    @Override
    public QueryRes queryStatus(QueryReq<QueryReqT> req, CnfReqT cnf) {
        return new QueryRes(SimpleStatusEnum.UNKNOWN, "chl has no query api");
    }
}
